/*
 *   init.c
 *
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "frcomm.h"
#include "frmem.h"
#include "frstr.h"

#include "conntrack.h"
#include "module.h"

#include "head.h"


#if !defined(FRDBG_MODULE_L7DEFAULT)
int module_info_new(L7_module *p_st_l7_module)
#else
int module_info_new_l7default(L7_module *p_st_l7_module)
#endif
{
    if(p_st_l7_module == NULL)
        return 1;

    //frmalloc(10);

    //frmem_init2("stub_mssql");
    
    //p_st_l7_module->i_l7_proto = 13;

    //6(IPPROTO_TCP) 17(IPPROTO_UDP)
    //如果有2个,IPPROTO_TCP|IPPROTO_UDP
    //p_st_l7_module->i_ip_proto = IPPROTO_TCP|IPPROTO_UDP;
    p_st_l7_module->us_l4_proto = IPPROTO_TCP;
    
    //test
    //p_st_l7_module->p_module_name = frstrdup("mssql analyer11");
    
    p_st_l7_module->p_version = "1.0.1";

    p_st_l7_module->init = l7default_init;
    p_st_l7_module->destroy = l7default_destroy;

    p_st_l7_module->l7_is = l7default_l7_is;
    p_st_l7_module->l7_analyze = l7default_l7_analyze;
    p_st_l7_module->session_destory = l7default_session_destory;

    //frdbg("p_st_l7_module->destroy=%p l7default_destroy=%p\n", p_st_l7_module->destroy, l7default_destroy);
    
    return 0;
}

void module_info_free(L7_module *p_st_l7_module)
{
//    //L7_module资源释放
//    if(p_st_l7_module)
//    {
//        if(p_st_l7_module->p_module_name)
//            frfree(p_st_l7_module->p_module_name);
//        if(p_st_l7_module->p_version)
//            frfree(p_st_l7_module->p_version);
//    }
//    
//    frshow_leak();
//    frmem_destroy();
    
    return;
}
